iT邦幫忙

2025 iThome 鐵人賽

DAY 4
1
Software Development

spring boot 3 學習筆記系列 第 4

Day04 - 快速建立第一個簡單的 Spring Boot 3 應用程式

  • 分享至 

  • xImage
  •  

Spring Initializr 簡介

Spring Initializr 是一個專為 Spring Boot 開發者設計的工具,能夠幫助開發者快速建立專案,減少繁瑣的初始設定。透過簡單的操作,開發者可以輕鬆選擇建置工具(Maven 或 Gradle)、Java 版本、Spring Boot 版本,以及所需的依賴套件,並立即生成一個可用的專案框架。

主要功能

Spring Initializr 提供多種便利功能,讓開發者能夠更有效率地開始開發 Spring Boot 專案:

  • 專案結構自動生成:根據開發者的選擇,自動生成完整的專案結構,包括必要的目錄與配置檔案,無需手動建立。
  • 依賴管理:自動配置所需的 Spring Boot 依賴,確保相容性,並減少手動新增依賴的時間與可能發生的錯誤。
  • 多種使用方式
    • 網頁介面:透過 Spring Initializr 網頁 進行設定與下載專案。
    • IDE 整合:可直接在 IntelliJ IDEA、Spring Tools Suite(STS)、Visual Studio Code 等 IDE 內使用。
    • 命令列工具:可透過 curlSpring Boot CLI 命令來快速生成專案。

Spring Initializr 的優勢

Spring Initializr 之所以受歡迎,主要有以下幾點優勢:

  • 快速啟動專案:簡化 Spring Boot 專案的初始化設定,讓開發者專注於開發而非繁瑣的配置。
  • 自動化依賴管理:避免版本衝突與相容性問題,提高開發效率。
  • 靈活性高:支援多種開發工具與建置方式,適用於不同開發者需求。
  • 官方維護:由 Spring 官方提供與維護,確保與最新技術相容,並持續更新。

建立 Spring Boot 應用程式

首先,我們可以使用 Spring Initializr 來生成我們專案的基礎架構。

https://ithelp.ithome.com.tw/upload/images/20250823/20171829pKZGC1OVQm.png

以下是每個欄位和按鈕的說明:

左側 (專案設定區域)

  1. Project (專案類型)

    • 可選擇 MavenGradle - GroovyGradle - KotlinMaven 作為構建工具。
    • MavenGradle:這兩種是 Java 專案最常用的建置管理工具。Maven 使用 XML 檔案來管理專案,而 Gradle 則使用 Groovy 或 Kotlin DSL。
    • 在此範例中,選擇 Maven
  2. Language (語言選擇)

    • 可選擇你偏好的程式語言 JavaKotlinGroovy 來開發專案,在此範例中選擇的是 Java
  3. Spring Boot (版本選擇)

    • 選擇不同版本的 Spring Boot
    • 可選擇 最新穩定版、開發中的 快照(SNAPSHOT) 或 Milestone (里程碑),圖片裡 M2 表示這是該版本系列的第二個里程碑版本。
    • 在此範例中選擇的是 3.5.5 (最新穩定版)。
  4. Project Metadata (專案中繼資料)

    • Group:通常是反向域名或是你的公司或組織的域名倒過來寫,例如 com.example
    • Artifact:這是專案名稱,例如 demo
    • Name:預設與 Artifact 相同,但你可以自訂一個更易讀的名稱。
    • Description:簡短描述專案用途。
    • Package name:這是 Java 套件的命名空間名稱,預設是 GroupArtifact 的組合,例如 com.example.demo
  5. Packaging (打包類型)

    • Jar:可執行的 Jar 檔案,適用於大多數 Spring Boot 應用程式,可以直接執行。
    • War:Web 應用程式打包,通常用來部署到傳統的伺服器,如 Tomcat。
    • 在此範例中選擇的是 Jar
  6. Java (JDK 版本選擇)

    • 選擇你的專案要使用的 Java 版本,通常選擇 LTS (長期支援版本)。
    • 可選擇 Java 17、Java 21、Java 24
    • 在此範例中選擇的是 Java 21

右側 (依賴設定區域)

  1. Dependencies (依賴庫)

    • 這是最重要的部分,你需要在這裡選擇專案所需的功能模組。可點擊 ADD DEPENDENCIES... 按鈕會跳出一個視窗,讓你搜尋並加入各種功能,如 Spring Web、Spring Data JPA、Thymeleaf 等。

    https://ithelp.ithome.com.tw/upload/images/20250823/20171829EPnU7mUN0K.png

    • 在此範例中,加入「Spring Web」庫(library)。滑鼠點擊後,就完成加入。

    https://ithelp.ithome.com.tw/upload/images/20250823/20171829eQqfnRPn0S.png

底部 (操作按鈕區域)

  1. Generate (產生專案)

    • 按下 GENERATE 按鈕,Spring Initializr 會將所有設定和依賴打包成一個(ZIP)壓縮檔,下載到你的電腦。
    • 快捷鍵:CTRL + ↩
  2. Explore (檢視專案結構)

    • 按下 EXPLORE 可在瀏覽器中查看專案的 pom.xmlbuild.gradle 設定。
    • 快捷鍵:CTRL + SPACE
  3. Bookmark (書籤)

    • 可將當前配置儲存為書籤,方便未來使用。
  4. Share (分享設定)

    • 產生可分享的連結,讓其他人直接載入相同的專案配置。

教學步驟 (如何使用 Spring Initializr)

  1. 選擇 MavenGradle
  2. 選擇程式語言,如 Java
  3. 選擇 Spring Boot 版本,通常選擇最新穩定版。
  4. 填寫 專案 Metadata (群組 ID、專案名稱等)。
  5. 選擇 Jar 或 War
  6. 選擇 Java 版本 (通常選擇 LTS 版本,如 Java 17 或 21)。
  7. 點擊 ADD DEPENDENCIES... 選擇所需的 Spring Boot 依賴。在此範例加入「Spring Web」庫(library)
  8. 點擊 GENERATE 下載專案並解壓縮。
  9. 使用你的 IDE (例如 IntelliJ IDEA、Eclipse 或 VS Code) 開啟專案,開始開發!

https://ithelp.ithome.com.tw/upload/images/20250823/20171829tUiS3LdpdK.png

使用 IntelliJ IDEA IDE 開啟專案並啟動

要在 IntelliJ IDEA 中開啟透過 Spring Initializr 建立的專案,可以按照以下步驟進行:

開啟 IntelliJ IDEA

  1. 啟動 IntelliJ IDEA:首先,打開 IntelliJ IDEA。

    https://ithelp.ithome.com.tw/upload/images/20250823/20171829HWeQwfpb06.png

  2. 選擇導入專案

    • 在歡迎畫面中,選擇「Projects」=>「Open」,或者在主功能表中選擇「File」 > 「Open」(檔案 > 開啟)。

    https://ithelp.ithome.com.tw/upload/images/20250823/20171829z69HvI7AKl.png

    • 瀏覽到您剛剛從 Spring Initializr 下載並解壓縮的專案資料夾。本範例將剛剛下載壓縮檔解壓縮到 C:\temp 資料夾裡,因此在此資料夾裡點擊專案資料夾後,在點擊 [Select Folder] 按鈕。

    https://ithelp.ithome.com.tw/upload/images/20250823/20171829owWunLqqMQ.png

  3. 專案信任 (Trust Project) 視窗

    https://ithelp.ithome.com.tw/upload/images/20250823/20171829mvxEaOm0pV.png

    當你第一次在 IntelliJ IDEA 開啟某個專案(例如 demo)時,會跳出一個安全提示視窗,詢問你要不要「信任這個專案」。

    • 內容主要說明:

      • IntelliJ IDEA 在開啟專案時,可能會執行這個資料夾裡的程式碼(例如建置腳本、外掛或工具),若專案來源不可信,這些程式碼可能有惡意行為。
      • 如果你不確定專案來源是否安全,建議用 Safe Mode (安全模式) 開啟,只能瀏覽程式碼而不會執行外部自動化功能。
    • 選項說明:

      • Trust all projects in 'temp' folder
        • 勾選後,未來只要是 temp 資料夾內的所有專案,都會自動被信任,不再詢問。
      • Add IDE and 'demo' folders to the Microsoft Defender exclusions list(預設已勾選)
        • 這個功能會把 IntelliJ 以及專案資料夾加入 Windows Defender 的「排除清單」,讓防毒軟體不要一直掃描,避免影響效能。
        • 注意:需要系統管理員權限才能生效。
        • 但要注意,如果專案來源不安全,這樣可能會讓惡意程式更容易執行。
    • 下方三個按鈕說明:

      • Trust Project
        • 如果專案是你自己寫的,或來自公司 / 完全信任的來源的話並開啟專案,所有 IntelliJ 功能都能正常使用(例如 Gradle/Maven 執行、外掛載入、自動建構等)。
      • Preview in Safe Mode
        • 如果專案來源不明(例如陌生人分享的壓縮檔),屬於不信任專案,只用安全模式瀏覽程式碼。
        • 安全模式下,不會執行任何可能的外部程式或工具。
      • Don't Open
        • 放棄開啟這個專案,直接關閉。

    在此範例中,選擇 Add IDE and 'demo' folders to the Microsoft Defender exclusions list(預設已勾選)後,點擊 Trust Project 按鈕。

  4. 導入專案

    當你成功開啟專案後,IntelliJ IDEA 會自動識別專案類型(Maven)中的 pom.xml 檔案,並開始解析依賴項導入至專案。因為 IDE 會下載所有必要的依賴項,這可能需要一些時間。

  5. 專案結構

    導入完成後,您應該能在專案視窗中看到以下結構:

    • src/main/java:包含主要的應用程式程式碼。
    • src/main/resources:包含配置檔案,例如 application.propertiesapplication.yml
    • src/test/java:包含測試案例。
    • pom.xml:Maven 的依賴管理檔案。

    後續章節會再進一步說明

應用程式配置

在專案中,src/main/java/com/example/demo/DemoApplication.java 是 Spring Boot 應用的主要啟動類。這個類含有一個 main 方法,該方法會透過 SpringApplication.run() 方法來啟動 Spring Boot 應用程式。

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {
	public static void main(String[] args) {
		SpringApplication.run(DemoApplication.class, args);
	}
}
  • @SpringBootApplication 註解(Annotation)是 Spring Boot 的核心註解(Annotation),它結合了 @Configuration@EnableAutoConfiguration@ComponentScan 三個註解(Annotation),讓你無需額外設定即可啟動應用。

啟動應用程式

  1. 找到主應用程式類別:

    • src/main/java 資料夾中,找到主應用程式類別,通常命名為 DemoApplication.java 或類似名稱。
  2. 執行應用程式:

    • 只需在 DemoApplication 類別的 main 方法上,點擊綠色的三角形圖示,然後選擇「Run 'DemoApplication.main()'」。這將啟動 Spring Boot 應用程式。

    https://ithelp.ithome.com.tw/upload/images/20250823/20171829Hyf9UEoiVZ.png

    https://ithelp.ithome.com.tw/upload/images/20250823/20171829OnxSKvlRyG.png

    • 或者右鍵點擊該類別,選擇「Run 'DemoApplication.main()'」(執行 'DemoApplication.main()')。這將啟動 Spring Boot 應用程式。

    https://ithelp.ithome.com.tw/upload/images/20250823/20171829sfaolgV4AM.png

  3. 查看執行日誌:

當應用程式成功啟動後,在下方的「執行」視窗中,可以看到應用程式的控制台會顯示如下日誌輸出。

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/

 :: Spring Boot ::                (v3.5.5)

2025-08-23T18:38:24.101+08:00  INFO 11492 --- [demo] [           main] com.example.demo.DemoApplication         : Starting DemoApplication using Java 21.0.8 with PID 11492 (C:\temp\demo\target\classes started by User in C:\temp\demo)
2025-08-23T18:38:24.103+08:00  INFO 11492 --- [demo] [           main] com.example.demo.DemoApplication         : No active profile set, falling back to 1 default profile: "default"
2025-08-23T18:38:24.921+08:00  INFO 11492 --- [demo] [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port 8080 (http)
2025-08-23T18:38:24.934+08:00  INFO 11492 --- [demo] [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2025-08-23T18:38:24.934+08:00  INFO 11492 --- [demo] [           main] o.apache.catalina.core.StandardEngine    : Starting Servlet engine: [Apache Tomcat/10.1.44]
2025-08-23T18:38:24.982+08:00  INFO 11492 --- [demo] [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2025-08-23T18:38:24.982+08:00  INFO 11492 --- [demo] [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 789 ms
2025-08-23T18:38:25.294+08:00  INFO 11492 --- [demo] [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port 8080 (http) with context path '/'
2025-08-23T18:38:25.299+08:00  INFO 11492 --- [demo] [           main] com.example.demo.DemoApplication         : Started DemoApplication in 1.669 seconds (process running for 2.472)

如果應用程式成功啟動,您將看到類似「Started DemoApplication in XXX seconds」的訊息。

https://ithelp.ithome.com.tw/upload/images/20250823/201718296Ru6h1OTxs.png

打開您的網頁瀏覽器,在網址列上輸入:http://127.0.0.1:8080/ 來訪問您的應用程式是否執行結果,若啟動成功,將顯示如下錯誤頁面:

https://ithelp.ithome.com.tw/upload/images/20250823/20171829xskYrvlyPr.png

這表示應用程式已經成功啟動並正在運行。

相關資料來源


上一篇
Day03 - Spring Boot 簡介
下一篇
Day05 - Spring Boot Maven 簡介
系列文
spring boot 3 學習筆記18
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言